

/* 
* 在java语言中，如果遇到 范围比 int 小的类型发生运算时，首先需要提升为int 类型后再运算
* 在java语言中，两个float类型的变量相加后仍然是 float 类型（java8 和java11测试通过）
* 在java语言中，一个float类型的数值与 一个 double 类型的数值 发生运算时 ，float 数值首先提升为double 类型后再做运算
*/
public class Pig{
    public static void main(String[] args) {
        

        byte first = 100;
        byte second = 50;

        //byte third = first + second ;//【编译失败】错误：不兼容的类型：从int 转换到byte 可能会有损失
        //两个byte 类型的变量相加时，会首先自动类型提升为 int 类型，再运算
        int third = first + second;
        System.out.println(third);

        
        short forth = 100;
        short fifth =50 ;

        //short sixth = forth + fifth ;//【编译失败】错误：不兼容的类型：从int 转换到short 可能会有损失
        //两个short 类型的变量相加时，会首先自动类型提升为 int 类型，再运算
        int sixth = forth + fifth ;
        System.out.println(sixth);
        //byte result = first + fouth;?
        //short result = first + fouth;?
        // int result = first + fouth;?
        // long result = first + fouth;?

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

        /* float one = 3.14;
        float two = 3.14;
        float third = one + two;//【编译失败】
        //注意，这里者少在java8 中测试是通过的 */

        float one = 3.14F;
        float two = 3.14F;
        float three = one + two;
        System.out.println(three);


        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

        double four = 3.1415926;

        //float five = one + four;//【编译失败】错误：不兼容的类型： 从double 转换到float 可能会有损失
        double five = one + four;
        System.out.println(five);
    }
}